
			var Ziploader = function() {
				function initLoad(e, t) {
					function o(e, t, n) {
						var r = getFileExt(e),
							i = n || s[r];
						switch(i) {
							case TYPE_TEXT:
								return Utf8ArrayToStr(t);
							case TYPE_BLOB:
								return getBlob(t, MIME_MAP[r]);
							case TYPE_RAW:
								return t;
							case TYPE_URL:
							default:
								return getBlobUrl(t, MIME_MAP[r])
						}
					}
					var n = $.extend({}, DEFAULT_LOAD_OPTIONS, t.loadOptions),
						r = n.success,
						i = n.error;
					progressCb = n.progress;
					var s = $.extend({}, DEFAULT_RETURN_OPTIONS, t.returnOptions);
					MIME_MAP = $.extend(MIME_MAP, t.mimeOptions), e.map(function(e) {
						var t = btoa(window.location.origin);
						return /\#/.test(e) && (e = e.split("#")[0]), /\?/.test(e) ? t = "&" + t : t = "?" + t, e + t
					}).forEach(function(e) {
						$.ajax({
							url: e,
							type: "GET",
							async: !0,
							cache: !0,
							dataType: "arraybuffer",
							crossDomain: "",
							dataFilter: function(e) {
								var t = new Uint8Array(e);
								return t
							},
							success: function(t, n, i) {
								var u = t,
									a = new Zlib.Unzip(u),
									f = 0,
									l = null,
									c = a.getFilenames(),
									h = c.filter(function(e) {
										return !/\/|\\/g.test(e)
									}).reduce(function(e, t) {
										var n = a.decompress(t);
										return e[t] = o(t, n), e
									}, {}),
									p = c.filter(function(e) {
										return /^[^\/|\\]+(\/|\\)$/.test(e)
									}).reduce(function(e, t) {
										if(s["folder"] == TYPE_FILES) e[t] = c.filter(function(e) {
											return e != t && e.indexOf(t) == 0
										}).map(function(e) {
											return e.replace(t, "")
										}).reduce(function(e, n) {
											return e[n] = o(n, a.decompress(t + n)), e
										}, {});
										else if(s["folder"] == TYPE_FRAMES) {
											var n = c.filter(function(e) {
													return e != t && e.indexOf(t) == 0
												}).map(function(e) {
													return e.replace(t, "")
												}).sort().map(function(e) {
													return o(e, a.decompress(t + e), TYPE_URL)
												}).map(function(e) {
													var t = new Image;
													return t.src = e, t
												}),
												r = {};
											n[0] && n[0].width ? $.extend(r, {
												images: n,
												frames: {
													width: n[0].width,
													height: n[0].height,
													regX: 0,
													regY: 0
												},
												animations: {
													"default": {
														frames: [0, n.length]
													}
												},
												framerate: 60
											}) : (f++, n[0].onload = function() {
												$.extend(r, {
													images: n,
													frames: {
														width: n[0].width,
														height: n[0].height,
														regX: 0,
														regY: 0
													},
													animations: {
														"default": {
															frames: [0, n.length]
														}
													},
													framerate: 60
												}), f--, f || l && l()
											}), e[t] = r
										} else {
											var i = s.folder;
											e[t] = c.filter(function(e) {
												return e != t && e.indexOf(t) == 0
											}).map(function(e) {
												return e.replace(t, "")
											}).reduce(function(e, n) {
												return e[n] = o(n, a.decompress(t + n), i), e
											}, {})
										}
										return e
									}, {});
								f ? l = function() {
									r($.extend({}, h, p)), progressSegment(e, !0)
								} : (r($.extend({}, h, p)), progressSegment(e, !0))
							},
							error: function(e, t) {
								console.log(e, t), i(t)
							}
						})
					})
				}

				function getFileExt(e) {
					return e.split(".").slice(-1).join("").toLowerCase()
				}

				function Utf8ArrayToStr(e) {
					var t, n, r, i, s, o;
					t = "", r = e.length, n = 0;
					while(n < r) {
						i = e[n++];
						switch(i >> 4) {
							case 0:
							case 1:
							case 2:
							case 3:
							case 4:
							case 5:
							case 6:
							case 7:
								t += String.fromCharCode(i);
								break;
							case 12:
							case 13:
								s = e[n++], t += String.fromCharCode((i & 31) << 6 | s & 63);
								break;
							case 14:
								s = e[n++], o = e[n++], t += String.fromCharCode((i & 15) << 12 | (s & 63) << 6 | (o & 63) << 0)
						}
					}
					return t
				}

				function getBlob(e, t) {
					try {
						var n = window.Blob,
							r = window.BlobBuilder || window.webkieBlobBuilder || window.mozBlobBuilder,
							i;
						n && (i = new Blob([e], {
							type: t || "text/plain"
						}));
						if(!n && r) {
							var s = new r;
							s.append(e), i = s.getBlob(t)
						}
						return i ? i : ""
					} catch(o) {
						return alert("No Blob API Avilable"), ""
					}
				}

				function getBlobUrl(e, t) {
					try {
						var n = window.Blob,
							r = window.BlobBuilder || window.webkieBlobBuilder || window.mozBlobBuilder,
							i;
						n && (i = new Blob([e], {
							type: t || "text/plain"
						}));
						if(!n && r) {
							var s = new r;
							s.append(e), i = s.getBlob()
						}
						return i ? (URL.createObjectURL || URL.webkitCreateObjectURL)(i) : ""
					} catch(o) {
						return alert("No Blob API or createObjectURL Method Avilable"), ""
					}
				}

				function progressSegment(e, t) {
					if(t) {
						progressList[e] = {
							total: 1,
							loaded: 1,
							progress: 1
						};
						return
					}
					var n = e.target,
						r = n.id;
					if(!e.lengthComputable) {
						progressList[r] = {
							total: 1,
							loaded: 0,
							progress: 0
						};
						return
					}
					progressList[r] ? (progressList[r].loaded = e.loaded, progressList[r].progress = e.loaded / e.total) : progressList[r] = {
						total: e.total,
						loaded: e.loaded,
						progress: e.loaded / e.total
					};
					var i = 0,
						s = 0;
					for(var o in progressList) i += progressList[o].total, s += progressList[o].loaded;
					progressCb(s / i)
				}(function() {
					"use strict";

					function l(e) {
						throw e
					}

					function v(e, t) {
						var n = e.split("."),
							i = aa;
						!(n[0] in i) && i.execScript && i.execScript("var " + n[0]);
						for(var s; n.length && (s = n.shift());) !n.length && t !== r ? i[s] = t : i = i[s] ? i[s] : i[s] = {}
					}

					function D(e) {
						var t = e.length,
							n = 0,
							r = Number.POSITIVE_INFINITY,
							i, s, o, u, a, f, l, c, h, p;
						for(c = 0; c < t; ++c) e[c] > n && (n = e[c]), e[c] < r && (r = e[c]);
						i = 1 << n, s = new(y ? Uint32Array : Array)(i), o = 1, u = 0;
						for(a = 2; o <= n;) {
							for(c = 0; c < t; ++c)
								if(e[c] === o) {
									f = 0, l = u;
									for(h = 0; h < o; ++h) f = f << 1 | l & 1, l >>= 1;
									p = o << 16 | c;
									for(h = f; h < i; h += a) s[h] = p;
									++u
								}++o, u <<= 1, a <<= 1
						}
						return [s, n, r]
					}

					function I(e, t) {
						this.l = [], this.m = 32768, this.d = this.f = this.c = this.t = 0, this.input = y ? new Uint8Array(e) : e, this.u = !1, this.n = J, this.K = !1;
						if(t || !(t = {})) t.index && (this.c = t.index), t.bufferSize && (this.m = t.bufferSize), t.bufferType && (this.n = t.bufferType), t.resize && (this.K = t.resize);
						switch(this.n) {
							case ga:
								this.a = 32768, this.b = new(y ? Uint8Array : Array)(32768 + this.m + 258);
								break;
							case J:
								this.a = 0, this.b = new(y ? Uint8Array : Array)(this.m), this.e = this.W, this.B = this.R, this.q = this.V;
								break;
							default:
								l(Error("invalid inflate mode"))
						}
					}

					function K(e, t) {
						for(var n = e.f, r = e.d, i = e.input, s = e.c, o = i.length, u; r < t;) s >= o && l(Error("input buffer is broken")), n |= i[s++] << r, r += 8;
						return u = n & (1 << t) - 1, e.f = n >>> t, e.d = r - t, e.c = s, u
					}

					function M(e, t) {
						for(var n = e.f, r = e.d, i = e.input, s = e.c, o = i.length, u = t[0], a = t[1], f, c; r < a && !(s >= o);) n |= i[s++] << r, r += 8;
						return f = u[n & (1 << a) - 1], c = f >>> 16, c > r && l(Error("invalid code length: " + c)), e.f = n >> c, e.d = r - c, e.c = s, f & 65535
					}

					function U(e) {
						e = e || {}, this.files = [], this.v = e.comment
					}

					function V(e, t) {
						t = t || {}, this.input = y && e instanceof Array ? new Uint8Array(e) : e, this.c = 0, this.ba = t.verify || !1, this.j = t.password
					}

					function ta(e, t) {
						this.input = e, this.offset = t
					}

					function ua(e, t) {
						this.input = e, this.offset = t
					}

					function $(e) {
						var t = [],
							n = {},
							i, s, o, u;
						if(!e.i) {
							if(e.o === r) {
								var a = e.input,
									f;
								if(!e.D) e: {
									var c = e.input,
										h;
									for(h = c.length - 12; 0 < h; --h)
										if(c[h] === Z[0] && c[h + 1] === Z[1] && c[h + 2] === Z[2] && c[h + 3] === Z[3]) {
											e.D = h;
											break e
										}
									l(Error("End of Central Directory Record not found"))
								}
								f = e.D, (a[f++] !== Z[0] || a[f++] !== Z[1] || a[f++] !== Z[2] || a[f++] !== Z[3]) && l(Error("invalid signature")), e.ha = a[f++] | a[f++] << 8, e.ja = a[f++] | a[f++] << 8, e.ka = a[f++] | a[f++] << 8, e.aa = a[f++] | a[f++] << 8, e.Q = (a[f++] | a[f++] << 8 | a[f++] << 16 | a[f++] << 24) >>> 0, e.o = (a[f++] | a[f++] << 8 | a[f++] << 16 | a[f++] << 24) >>> 0, e.w = a[f++] | a[f++] << 8, e.v = y ? a.subarray(f, f + e.w) : a.slice(f, f + e.w)
							}
							i = e.o, o = 0;
							for(u = e.aa; o < u; ++o) s = new ta(e.input, i), s.parse(), i += s.length, t[o] = s, n[s.filename] = o;
							e.Q < i - e.o && l(Error("invalid file header size")), e.i = t, e.G = n
						}
					}

					function wa(e, t, n) {
						return n ^= e.s(t), e.k(t, n), n
					}
					var r = void 0,
						t, aa = this,
						y = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array && "undefined" != typeof DataView;
					new(y ? Uint8Array : Array)(256);
					var z;
					for(z = 0; 256 > z; ++z)
						for(var B = z, ba = 7, B = B >>> 1; B; B >>>= 1) --ba;
					var ca = [0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117],
						C = y ? new Uint32Array(ca) : ca;
					if(aa.Uint8Array !== r) try {
						eval("String.fromCharCode.apply(null, new Uint8Array([0]));")
					} catch(ea) {
						String.fromCharCode.apply = function(e) {
							return function(t, n) {
								return e.call(String.fromCharCode, t, Array.prototype.slice.call(n))
							}
						}(String.fromCharCode.apply)
					}
					var F = [],
						G;
					for(G = 0; 288 > G; G++) switch(!0) {
						case 143 >= G:
							F.push([G + 48, 8]);
							break;
						case 255 >= G:
							F.push([G - 144 + 400, 9]);
							break;
						case 279 >= G:
							F.push([G - 256 + 0, 7]);
							break;
						case 287 >= G:
							F.push([G - 280 + 192, 8]);
							break;
						default:
							l("invalid literal: " + G)
					}
					var fa = function() {
						function e(e) {
							switch(!0) {
								case 3 === e:
									return [257, e - 3, 0];
								case 4 === e:
									return [258, e - 4, 0];
								case 5 === e:
									return [259, e - 5, 0];
								case 6 === e:
									return [260, e - 6, 0];
								case 7 === e:
									return [261, e - 7, 0];
								case 8 === e:
									return [262, e - 8, 0];
								case 9 === e:
									return [263, e - 9, 0];
								case 10 === e:
									return [264, e - 10, 0];
								case 12 >= e:
									return [265, e - 11, 1];
								case 14 >= e:
									return [266, e - 13, 1];
								case 16 >= e:
									return [267, e - 15, 1];
								case 18 >= e:
									return [268, e - 17, 1];
								case 22 >= e:
									return [269, e - 19, 2];
								case 26 >= e:
									return [270, e - 23, 2];
								case 30 >= e:
									return [271, e - 27, 2];
								case 34 >= e:
									return [272, e - 31, 2];
								case 42 >= e:
									return [273, e - 35, 3];
								case 50 >= e:
									return [274, e - 43, 3];
								case 58 >= e:
									return [275, e - 51, 3];
								case 66 >= e:
									return [276, e - 59, 3];
								case 82 >= e:
									return [277, e - 67, 4];
								case 98 >= e:
									return [278, e - 83, 4];
								case 114 >= e:
									return [279, e - 99, 4];
								case 130 >= e:
									return [280, e - 115, 4];
								case 162 >= e:
									return [281, e - 131, 5];
								case 194 >= e:
									return [282, e - 163, 5];
								case 226 >= e:
									return [283, e - 195, 5];
								case 257 >= e:
									return [284, e - 227, 5];
								case 258 === e:
									return [285, e - 258, 0];
								default:
									l("invalid length: " + e)
							}
						}
						var t = [],
							n, r;
						for(n = 3; 258 >= n; n++) r = e(n), t[n] = r[2] << 24 | r[1] << 16 | r[0];
						return t
					}();
					y && new Uint32Array(fa);
					var ga = 0,
						J = 1;
					I.prototype.r = function() {
						for(; !this.u;) {
							var e = K(this, 3);
							e & 1 && (this.u = !0), e >>>= 1;
							switch(e) {
								case 0:
									var t = this.input,
										n = this.c,
										i = this.b,
										s = this.a,
										o = t.length,
										u = r,
										a = r,
										f = i.length,
										c = r;
									this.d = this.f = 0, n + 1 >= o && l(Error("invalid uncompressed block header: LEN")), u = t[n++] | t[n++] << 8, n + 1 >= o && l(Error("invalid uncompressed block header: NLEN")), a = t[n++] | t[n++] << 8, u === ~a && l(Error("invalid uncompressed block header: length verify")), n + u > t.length && l(Error("input buffer is broken"));
									switch(this.n) {
										case ga:
											for(; s + u > i.length;) {
												c = f - s, u -= c;
												if(y) i.set(t.subarray(n, n + c), s), s += c, n += c;
												else
													for(; c--;) i[s++] = t[n++];
												this.a = s, i = this.e(), s = this.a
											}
											break;
										case J:
											for(; s + u > i.length;) i = this.e({
												H: 2
											});
											break;
										default:
											l(Error("invalid inflate mode"))
									}
									if(y) i.set(t.subarray(n, n + u), s), s += u, n += u;
									else
										for(; u--;) i[s++] = t[n++];
									this.c = n, this.a = s, this.b = i;
									break;
								case 1:
									this.q(ha, ia);
									break;
								case 2:
									for(var h = K(this, 5) + 257, p = K(this, 5) + 1, d = K(this, 4) + 4, v = new(y ? Uint8Array : Array)(L.length), m = r, g = r, b = r, w = r, E = r, S = r, x = r, T = r, N = r, T = 0; T < d; ++T) v[L[T]] = K(this, 3);
									if(!y) {
										T = d;
										for(d = v.length; T < d; ++T) v[L[T]] = 0
									}
									m = D(v), w = new(y ? Uint8Array : Array)(h + p), T = 0;
									for(N = h + p; T < N;) switch(E = M(this, m), E) {
										case 16:
											for(x = 3 + K(this, 2); x--;) w[T++] = S;
											break;
										case 17:
											for(x = 3 + K(this, 3); x--;) w[T++] = 0;
											S = 0;
											break;
										case 18:
											for(x = 11 + K(this, 7); x--;) w[T++] = 0;
											S = 0;
											break;
										default:
											S = w[T++] = E
									}
									g = y ? D(w.subarray(0, h)) : D(w.slice(0, h)), b = y ? D(w.subarray(h)) : D(w.slice(h)), this.q(g, b);
									break;
								default:
									l(Error("unknown BTYPE: " + e))
							}
						}
						return this.B()
					};
					var ja = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
						L = y ? new Uint16Array(ja) : ja,
						ka = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258],
						la = y ? new Uint16Array(ka) : ka,
						ma = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0],
						N = y ? new Uint8Array(ma) : ma,
						na = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577],
						oa = y ? new Uint16Array(na) : na,
						pa = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13],
						P = y ? new Uint8Array(pa) : pa,
						Q = new(y ? Uint8Array : Array)(288),
						R, qa;
					R = 0;
					for(qa = Q.length; R < qa; ++R) Q[R] = 143 >= R ? 8 : 255 >= R ? 9 : 279 >= R ? 7 : 8;
					var ha = D(Q),
						S = new(y ? Uint8Array : Array)(30),
						T, ra;
					T = 0;
					for(ra = S.length; T < ra; ++T) S[T] = 5;
					var ia = D(S);
					t = I.prototype, t.q = function(e, t) {
						var n = this.b,
							r = this.a;
						this.C = e;
						for(var i = n.length - 258, s, o, u, a; 256 !== (s = M(this, e));)
							if(256 > s) r >= i && (this.a = r, n = this.e(), r = this.a), n[r++] = s;
							else {
								o = s - 257, a = la[o], 0 < N[o] && (a += K(this, N[o])), s = M(this, t), u = oa[s], 0 < P[s] && (u += K(this, P[s])), r >= i && (this.a = r, n = this.e(), r = this.a);
								for(; a--;) n[r] = n[r++ - u]
							}
						for(; 8 <= this.d;) this.d -= 8, this.c--;
						this.a = r
					}, t.V = function(e, t) {
						var n = this.b,
							r = this.a;
						this.C = e;
						for(var i = n.length, s, o, u, a; 256 !== (s = M(this, e));)
							if(256 > s) r >= i && (n = this.e(), i = n.length), n[r++] = s;
							else {
								o = s - 257, a = la[o], 0 < N[o] && (a += K(this, N[o])), s = M(this, t), u = oa[s], 0 < P[s] && (u += K(this, P[s])), r + a > i && (n = this.e(), i = n.length);
								for(; a--;) n[r] = n[r++ - u]
							}
						for(; 8 <= this.d;) this.d -= 8, this.c--;
						this.a = r
					}, t.e = function() {
						var e = new(y ? Uint8Array : Array)(this.a - 32768),
							t = this.a - 32768,
							n, r, i = this.b;
						if(y) e.set(i.subarray(32768, e.length));
						else {
							n = 0;
							for(r = e.length; n < r; ++n) e[n] = i[n + 32768]
						}
						this.l.push(e), this.t += e.length;
						if(y) i.set(i.subarray(t, t + 32768));
						else
							for(n = 0; 32768 > n; ++n) i[n] = i[t + n];
						return this.a = 32768, i
					}, t.W = function(e) {
						var t, n = this.input.length / this.c + 1 | 0,
							r, i, s, o = this.input,
							u = this.b;
						return e && ("number" == typeof e.H && (n = e.H), "number" == typeof e.P && (n += e.P)), 2 > n ? (r = (o.length - this.c) / this.C[2], s = 258 * (r / 2) | 0, i = s < u.length ? u.length + s : u.length << 1) : i = u.length * n, y ? (t = new Uint8Array(i), t.set(u)) : t = u, this.b = t
					}, t.B = function() {
						var e = 0,
							t = this.b,
							n = this.l,
							r, i = new(y ? Uint8Array : Array)(this.t + (this.a - 32768)),
							s, o, u, a;
						if(0 === n.length) return y ? this.b.subarray(32768, this.a) : this.b.slice(32768, this.a);
						s = 0;
						for(o = n.length; s < o; ++s) {
							r = n[s], u = 0;
							for(a = r.length; u < a; ++u) i[e++] = r[u]
						}
						s = 32768;
						for(o = this.a; s < o; ++s) i[e++] = t[s];
						return this.l = [], this.buffer = i
					}, t.R = function() {
						var e, t = this.a;
						return y ? this.K ? (e = new Uint8Array(t), e.set(this.b.subarray(0, t))) : e = this.b.subarray(0, t) : (this.b.length > t && (this.b.length = t), e = this.b), this.buffer = e
					}, U.prototype.L = function(e) {
						this.j = e
					}, U.prototype.s = function(e) {
						var t = e[2] & 65535 | 2;
						return t * (t ^ 1) >> 8 & 255
					}, U.prototype.k = function(e, t) {
						e[0] = (C[(e[0] ^ t) & 255] ^ e[0] >>> 8) >>> 0, e[1] = (6681 * (20173 * (e[1] + (e[0] & 255)) >>> 0) >>> 0) + 1 >>> 0, e[2] = (C[(e[2] ^ e[1] >>> 24) & 255] ^ e[2] >>> 8) >>> 0
					}, U.prototype.T = function(e) {
						var t = [305419896, 591751049, 878082192],
							n, r;
						y && (t = new Uint32Array(t)), n = 0;
						for(r = e.length; n < r; ++n) this.k(t, e[n] & 255);
						return t
					};
					var sa = {
							O: 0,
							M: 8
						},
						W = [80, 75, 1, 2],
						Y = [80, 75, 3, 4],
						Z = [80, 75, 5, 6];
					ta.prototype.parse = function() {
						var e = this.input,
							t = this.offset;
						(e[t++] !== W[0] || e[t++] !== W[1] || e[t++] !== W[2] || e[t++] !== W[3]) && l(Error("invalid file header signature")), this.version = e[t++], this.ia = e[t++], this.Z = e[t++] | e[t++] << 8, this.I = e[t++] | e[t++] << 8, this.A = e[t++] | e[t++] << 8, this.time = e[t++] | e[t++] << 8, this.U = e[t++] | e[t++] << 8, this.p = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.z = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.J = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.h = e[t++] | e[t++] << 8, this.g = e[t++] | e[t++] << 8, this.F = e[t++] | e[t++] << 8, this.ea = e[t++] | e[t++] << 8, this.ga = e[t++] | e[t++] << 8, this.fa = e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24, this.$ = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.filename = String.fromCharCode.apply(null, y ? e.subarray(t, t += this.h) : e.slice(t, t += this.h)), this.X = y ? e.subarray(t, t += this.g) : e.slice(t, t += this.g), this.v = y ? e.subarray(t, t + this.F) : e.slice(t, t + this.F), this.length = t - this.offset
					};
					var va = {
						N: 1,
						ca: 8,
						da: 2048
					};
					ua.prototype.parse = function() {
						var e = this.input,
							t = this.offset;
						(e[t++] !== Y[0] || e[t++] !== Y[1] || e[t++] !== Y[2] || e[t++] !== Y[3]) && l(Error("invalid local file header signature")), this.Z = e[t++] | e[t++] << 8, this.I = e[t++] | e[t++] << 8, this.A = e[t++] | e[t++] << 8, this.time = e[t++] | e[t++] << 8, this.U = e[t++] | e[t++] << 8, this.p = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.z = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.J = (e[t++] | e[t++] << 8 | e[t++] << 16 | e[t++] << 24) >>> 0, this.h = e[t++] | e[t++] << 8, this.g = e[t++] | e[t++] << 8, this.filename = String.fromCharCode.apply(null, y ? e.subarray(t, t += this.h) : e.slice(t, t += this.h)), this.X = y ? e.subarray(t, t += this.g) : e.slice(t, t += this.g), this.length = t - this.offset
					}, t = V.prototype, t.Y = function() {
						var e = [],
							t, n, r;
						this.i || $(this), r = this.i, t = 0;
						for(n = r.length; t < n; ++t) e[t] = r[t].filename;
						return e
					}, t.r = function(e, t) {
						var n;
						this.G || $(this), n = this.G[e], n === r && l(Error(e + " not found"));
						var i;
						i = t || {};
						var s = this.input,
							o = this.i,
							u, a, f, c, h, p, d, v;
						o || $(this), o[n] === r && l(Error("wrong index")), a = o[n].$, u = new ua(this.input, a), u.parse(), a += u.length, f = u.z;
						if(0 !== (u.I & va.N)) {
							!i.password && !this.j && l(Error("please set password")), p = this.S(i.password || this.j), d = a;
							for(v = a + 12; d < v; ++d) wa(this, p, s[d]);
							a += 12, f -= 12, d = a;
							for(v = a + f; d < v; ++d) s[d] = wa(this, p, s[d])
						}
						switch(u.A) {
							case sa.O:
								c = y ? this.input.subarray(a, a + f) : this.input.slice(a, a + f);
								break;
							case sa.M:
								c = (new I(this.input, {
									index: a,
									bufferSize: u.J
								})).r();
								break;
							default:
								l(Error("unknown compression type"))
						}
						if(this.ba) {
							var m = r,
								g, b = "number" == typeof m ? m : m = 0,
								w = c.length;
							g = -1;
							for(b = w & 7; b--; ++m) g = g >>> 8 ^ C[(g ^ c[m]) & 255];
							for(b = w >> 3; b--; m += 8) g = g >>> 8 ^ C[(g ^ c[m]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 1]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 2]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 3]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 4]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 5]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 6]) & 255], g = g >>> 8 ^ C[(g ^ c[m + 7]) & 255];
							h = (g ^ 4294967295) >>> 0, u.p !== h && l(Error("wrong crc: file=0x" + u.p.toString(16) + ", data=0x" + h.toString(16)))
						}
						return c
					}, t.L = function(e) {
						this.j = e
					}, t.k = U.prototype.k, t.S = U.prototype.T, t.s = U.prototype.s, v("Zlib.Unzip", V), v("Zlib.Unzip.prototype.decompress", V.prototype.r), v("Zlib.Unzip.prototype.getFilenames", V.prototype.Y), v("Zlib.Unzip.prototype.setPassword", V.prototype.L)
				}).call(window), ! function(e) {
					e.ajaxTransport("+*", function(e, t, n) {
						if(window.FormData && (e.dataType && ("blob" == e.dataType || "arraybuffer" == e.dataType) || e.data && (window.Blob && e.data instanceof Blob || window.ArrayBuffer && e.data instanceof ArrayBuffer))) {
							var r;
							return {
								send: function(t, n) {
									var i = e.url || window.location.href,
										s = e.type || "GET",
										o = e.dataType || "text",
										u = e.data || null,
										a = e.async || !0;
									r = new XMLHttpRequest, r.id = e.url, r.onprogress = progressSegment, r.addEventListener("load", function() {
										var e = {},
											t = r.status >= 200 && r.status < 300 || 304 === r.status;
										t ? e[o] = r.response : e.text = r.statusText, n(r.status, r.statusText, e, r.getAllResponseHeaders())
									}), r.open(s, i, a), r.responseType = o;
									for(var f in t) t.hasOwnProperty(f) && r.setRequestHeader(f, t[f]);
									r.send(u)
								},
								abort: function() {
									r && r.abort()
								}
							}
						}
					})
				}(jQuery);
				var TYPE_TEXT = 1,
					TYPE_URL = 2,
					TYPE_BLOB = 3,
					TYPE_FRAMES = 4,
					TYPE_RAW = 5,
					TYPE_FILES = 6,
					progressList = {},
					progressCb, DEFAULT_RETURN_OPTIONS = {
						css: TYPE_TEXT,
						html: TYPE_TEXT,
						folder: TYPE_FILES
					},
					DEFAULT_LOAD_OPTIONS = {
						success: function(e) {
							console.log(e)
						},
						error: function(e) {
							console.error(e)
						},
						progress: function(e) {
							console.log("loaded: " + e * 100 + "%")
						}
					},
					MIME_MAP = {
						js: "text/javascript",
						jpg: "image/jpeg",
						png: "image/png"
					};
				return {
					TYPE_URL: TYPE_URL,
					TYPE_FILES: TYPE_FILES,
					TYPE_TEXT: TYPE_TEXT,
					TYPE_FRAMES: TYPE_FRAMES,
					TYPE_RAW: TYPE_RAW,
					TYPE_BLOB: TYPE_BLOB,
					initLoad: initLoad
				}
			}()
